package com.hrcx.mystery.vo;

import com.hrcx.mystery.pojo.EbMysteryCardVolume;
import com.hrcx.mystery.pojo.EbStoreProduct;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * 盲盒商品关联扩展响应类
 *
 * @author LinXiPeng
 * @TableName eb_mystery_merchandise_associated
 */
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "盲盒商品响应对象", description = "无")
public class EbMysteryMerchandiseAssociatedVo implements Serializable {

    private static final long serialVersionUID = -4675747187461777993L;
    /**
     * 盒子编号
     */
    @NotNull(message = "[盒子编号]不能为空")
    @ApiModelProperty("盒子编号")
    private Integer bid;
    /**
     * 商品对象
     */
    @NotNull(message = "[奖品对象（实物商品）]不能为空")
    @ApiModelProperty("奖品对象（实物商品）")
    private EbStoreProductVo product;
    /**
     * 卡卷对象
     */
    @NotNull(message = "[奖品对象（虚拟商品）]不能为空")
    @ApiModelProperty("奖品对象（虚拟商品）")
    private EbMysteryCardVolume cardVolume;
    /**
     * 寄售折扣
     */
    @NotNull(message = "[寄售折扣]不能为空")
    @ApiModelProperty("寄售折扣")
    private Double consignment;
    /**
     * 回收折扣
     */
    @NotNull(message = "[回收折扣]不能为空")
    @ApiModelProperty("回收折扣")
    private Double recyclingdiscount;
    /**
     * 显示概率
     */
    @NotNull(message = "[显示概率]不能为空")
    @ApiModelProperty("显示概率")
    private Double showProbability;
    /**
     * 被抽中次数
     */
    @NotNull(message = "[被抽中次数]不能为空")
    @ApiModelProperty("被抽中次数")
    private Integer hits;
    /**
     * 是否计算成本
     */
    @NotNull(message = "[是否计算成本]不能为空")
    @ApiModelProperty("是否计算成本")
    private Boolean projectCost;
    /**
     * 级别（1：白金 2：钻石 3：传说 4：史诗）
     */
    @NotNull(message = "[级别（1：白金 2：钻石 3：传说 4：史诗）]不能为空")
    @ApiModelProperty("级别（1：白金 2：钻石 3：传说 4：史诗）")
    private Integer level;
    /**
     * 类型（0：虚拟 1：实物）
     */
    @NotNull(message = "[类型（0：虚拟 1：实物）]不能为空")
    @ApiModelProperty("类型（0：虚拟 1：实物）")
    private Boolean type;
}
